using System;
using System.Xml.Serialization;

namespace WHC.Hotel.Entity
{
    [Serializable]
    public class OrderInfo : BaseEntity
    {    
        #region Field Members

        private int m_ID = 0; //编号          
        private string m_OrderNo = ""; //手工订单号          
        private string m_RoomNo = ""; //房间号          
        private string m_RoomType = ""; //房类型          
        private decimal m_OriginalPrice = 0; //原房价          
        private double m_DiscountRate = 0; //打折比例          
        private decimal m_DiscountPrice = 0; //折后房价          
        private bool m_IsPartTime = false; //是否钟点房          
        private int m_Customer_ID = 0; //宾客ID          
        private string m_CustomerName = ""; //宾客姓名          
        private string m_IDNumber = ""; //证件号码                  
        private int m_Persons = 0; //宾客人数          
        private decimal m_DepositMoney = 0; //实收押金          
        private string m_PayType = ""; //付款方式          
        private string m_Note = ""; //备注          
        private string m_Createor = ""; //下单业务员          
        private DateTime m_CreateDate = System.DateTime.Now; //下单时间 
        private int m_PreLivedDays = 0; //预住天数  
        private DateTime m_PreOffDate = System.DateTime.Now;//预离时间
        private bool m_IsEachPay = false;//分付房费
        private bool m_IsSecret = false;//客人资料是否保密
        private int m_ProtocolUnitId = 0;//协议单位ID

        private int m_IsVirtualAccount = 0;//是否虚拟主账单

        public int IsVirtualAccount
        {
            get { return m_IsVirtualAccount; }
            set { m_IsVirtualAccount = value; }
        }

        private int m_CheckType = 0;

        /// <summary>
        /// 入住客人类型
        /// </summary>
        public int CheckType
        {
            get { return m_CheckType; }
            set { m_CheckType = value; }
        }


        private decimal m_CreditCardMax = 0;

        /// <summary>
        /// 信用卡限额
        /// </summary>
        public decimal CreditCardMax
        {
            get { return m_CreditCardMax; }
            set { m_CreditCardMax = value; }
        }
 
        private string m_CreditCardNum = string.Empty;

        /// <summary>
        /// 信用卡号
        /// </summary>
        public string CreditCardNum
        {
            get { return m_CreditCardNum; }
            set { m_CreditCardNum = value; }
        }
        private string m_PreGrantNum = string.Empty;

        /// <summary>
        /// 信用卡预授权号
        /// </summary>
        public string PreGrantNum
        {
            get { return m_PreGrantNum; }
            set { m_PreGrantNum = value; }
        }

        public int ProtocolUnitId
        {
            get { return m_ProtocolUnitId; }
            set { m_ProtocolUnitId = value; }
        }
        private bool m_IsprotocolUnit = false;//是否是协议单位

        public bool IsprotocolUnit
        {
            get { return m_IsprotocolUnit; }
            set { m_IsprotocolUnit = value; }
        }
        private string m_ProtocolUnit = "";//协议单位

        public string ProtocolUnit
        {
            get { return m_ProtocolUnit; }
            set { m_ProtocolUnit = value; }
        }

        public bool IsSecret
        {
            get { return m_IsSecret; }
            set { m_IsSecret = value; }
        }

        public bool IsEachPay
        {
            get { return m_IsEachPay; }
            set { m_IsEachPay = value; }
        }
        //private int m_Is

        /// <summary>
        /// 预离时间
        /// </summary>
        public DateTime PreOffDate
        {
            get { return m_PreOffDate; }
            set { m_PreOffDate = value; }
        }
        private string m_TeamName = string.Empty;

        /// <summary>
        /// 团队名称
        /// </summary>
        public string TeamName
        {
            get { return m_TeamName; }
            set { m_TeamName = value; }
        }

        private int m_IsAudit = 0;

        public int IsAudit
        {
            get { return m_IsAudit; }
            set { m_IsAudit = value; }
        }

        private DateTime m_AuditDate = DateTime.Now;

        public DateTime AuditDate
        {
            get { return m_AuditDate; }
            set { m_AuditDate = value; }
        }


        private bool m_IsCheckOut = false; //是否已经结账          
        private DateTime m_CheckOutDate = Convert.ToDateTime("1975-1-1"); //结账时间          
        private string m_BillNumber = ""; //结账账单号          
        private string m_MasterRoomNo = ""; //主房间号  
        
        private bool m_IsContractOrder = false; //是否是长包房订单          
        private string m_ContractUnit = ""; //长包房的计费单位          
        private decimal m_ContractPrice = 0; //长包房的单位价格          
        private string m_ContractStatus = ""; //长包房当前状态（在店、离店）          
        private DateTime m_ContractPreOff = Convert.ToDateTime("1975-1-1");//长包房预离日期          

        #endregion

        #region Property Members
        
        /// <summary>
        /// 编号
        /// </summary>
        public virtual int ID
        {
            get
            {
                return this.m_ID;
            }
            set
            {
                this.m_ID = value;
            }
        }

        /// <summary>
        /// 手工订单号
        /// </summary>
        public virtual string OrderNo
        {
            get
            {
                return this.m_OrderNo;
            }
            set
            {
                this.m_OrderNo = value;
            }
        }

        /// <summary>
        /// 房间号
        /// </summary>
        public virtual string RoomNo
        {
            get
            {
                return this.m_RoomNo;
            }
            set
            {
                this.m_RoomNo = value;
            }
        }

        /// <summary>
        /// 房间类型
        /// </summary>
        public virtual string RoomType
        {
            get
            {
                return this.m_RoomType;
            }
            set
            {
                this.m_RoomType = value;
            }
        }

        /// <summary>
        /// 原房价
        /// </summary>
        public virtual decimal OriginalPrice
        {
            get
            {
                return this.m_OriginalPrice;
            }
            set
            {
                this.m_OriginalPrice = value;
            }
        }

        /// <summary>
        /// 打折比例
        /// </summary>
        public virtual double DiscountRate
        {
            get
            {
                return this.m_DiscountRate;
            }
            set
            {
                this.m_DiscountRate = value;
            }
        }

        /// <summary>
        /// 折后房价
        /// </summary>
        public virtual decimal DiscountPrice
        {
            get
            {
                return this.m_DiscountPrice;
            }
            set
            {
                this.m_DiscountPrice = value;
            }
        }

        /// <summary>
        /// 是否钟点房
        /// </summary>
        public virtual bool IsPartTime
        {
            get
            {
                return this.m_IsPartTime;
            }
            set
            {
                this.m_IsPartTime = value;
            }
        }

        /// <summary>
        /// 宾客ID
        /// </summary>
        public virtual int Customer_ID
        {
            get
            {
                return this.m_Customer_ID;
            }
            set
            {
                this.m_Customer_ID = value;
            }
        }

        /// <summary>
        /// 宾客姓名
        /// </summary>
        public virtual string CustomerName
        {
            get
            {
                return this.m_CustomerName;
            }
            set
            {
                this.m_CustomerName = value;
            }
        }

        /// <summary>
        /// 证件号码
        /// </summary>
        public virtual string IDNumber
        {
            get
            {
                return this.m_IDNumber;
            }
            set
            {
                this.m_IDNumber = value;
            }
        }

        /// <summary>
        /// 预住天数
        /// </summary>
        public virtual int PreLivedDays
        {
            get
            {
                return this.m_PreLivedDays;
            }
            set
            {
                this.m_PreLivedDays = value;
            }
        }

        /// <summary>
        /// 宾客人数
        /// </summary>
        public virtual int Persons
        {
            get
            {
                return this.m_Persons;
            }
            set
            {
                this.m_Persons = value;
            }
        }

        /// <summary>
        /// 实收押金
        /// </summary>
        public virtual decimal DepositMoney
        {
            get
            {
                return this.m_DepositMoney;
            }
            set
            {
                this.m_DepositMoney = value;
            }
        }

        /// <summary>
        /// 付款方式
        /// </summary>
        public virtual string PayType
        {
            get
            {
                return this.m_PayType;
            }
            set
            {
                this.m_PayType = value;
            }
        }

        /// <summary>
        /// 备注
        /// </summary>
        public virtual string Note
        {
            get
            {
                return this.m_Note;
            }
            set
            {
                this.m_Note = value;
            }
        }

        /// <summary>
        /// 下单业务员
        /// </summary>
        public virtual string Createor
        {
            get
            {
                return this.m_Createor;
            }
            set
            {
                this.m_Createor = value;
            }
        }

        /// <summary>
        /// 下单时间
        /// </summary>
        public virtual DateTime CreateDate
        {
            get
            {
                return this.m_CreateDate;
            }
            set
            {
                this.m_CreateDate = value;
            }
        }

        /// <summary>
        /// 是否已经结账
        /// </summary>
        public virtual bool IsCheckOut
        {
            get
            {
                return this.m_IsCheckOut;
            }
            set
            {
                this.m_IsCheckOut = value;
            }
        }

        /// <summary>
        /// 结账时间
        /// </summary>
        public virtual DateTime CheckOutDate
        {
            get
            {
                return this.m_CheckOutDate;
            }
            set
            {
                this.m_CheckOutDate = value;
            }
        }

        /// <summary>
        /// 结账账单号
        /// </summary>
        public virtual string BillNumber
        {
            get
            {
                return this.m_BillNumber;
            }
            set
            {
                this.m_BillNumber = value;
            }
        }

        /// <summary>
        /// 主房间号
        /// </summary>
        public virtual string MasterRoomNo
        {
            get
            {
                return this.m_MasterRoomNo;
            }
            set
            {
                this.m_MasterRoomNo = value;
            }
        }

        /// <summary>
        /// 是否是长包房订单
        /// </summary>
        public virtual bool IsContractOrder
        {
            get
            {
                return this.m_IsContractOrder;
            }
            set
            {
                this.m_IsContractOrder = value;
            }
        }

        /// <summary>
        /// 长包房的计费单位
        /// </summary>
        public virtual string ContractUnit
        {
            get
            {
                return this.m_ContractUnit;
            }
            set
            {
                this.m_ContractUnit = value;
            }
        }

        /// <summary>
        /// 长包房的单位价格
        /// </summary>
        public virtual decimal ContractPrice
        {
            get
            {
                return this.m_ContractPrice;
            }
            set
            {
                this.m_ContractPrice = value;
            }
        }

        /// <summary>
        /// 长包房当前状态（在店、离店）
        /// </summary>
        public virtual string ContractStatus
        {
            get
            {
                return this.m_ContractStatus;
            }
            set
            {
                this.m_ContractStatus = value;
            }
        }

        /// <summary>
        /// 长包房预离日期
        /// </summary>
        public virtual DateTime ContractPreOff
        {
            get
            {
                return this.m_ContractPreOff;
            }
            set
            {
                this.m_ContractPreOff = value;
            }
        }


        #endregion

    }
}